Skip to content

Conversation

iwatakeshi
Copy link

Summary

This PR enhances Devbox's npm package support by enforcing an explicit npm: prefix for npm packages, removing implicit transformation of scoped packages (e.g., @angular/cli no longer auto-transforms). It improves version parsing for npm-prefixed packages, refactors the parsing logic for better maintainability, and provides clearer error messages when npm packages are not found in Nixpkgs. Users now get actionable guidance, including a workaround to set npm's global prefix and install manually.

Partially fixes #2300

Changes Made

  • Enforced explicit npm: prefix in parsePackageInput and newPackage.
  • Updated error handling in initDefaultNames for user-friendly npm package not-found messages.
  • Refactored code to extract helper functions and consolidate logic.
  • Updated tests to reflect new behavior.

How was it tested?

  • Built the local Devbox binary and tested installation of valid npm packages (e.g., npm:lodash).
  • Attempted installation of non-existent npm packages (e.g., npm:@github/copilot) to verify improved error messages.
  • Ran unit tests to ensure no regressions.
  • Verified that bare scoped packages (e.g., @angular/cli) are no longer transformed.

Community Contribution License

All community contributions in this pull request are licensed to the project maintainers under the terms of the Apache 2 License.

By creating this pull request, I represent that I have the right to license the contributions to the project maintainers under the Apache 2 License as stated in the Community Contribution License.

@iwatakeshi iwatakeshi changed the title Improves error message for missing npm packages Enforce explicit npm: prefix and improve error handling for missing packages Sep 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Angular/cli
1 participant